package cn.kgc.mybatis.mapper;

import cn.kgc.mybatis.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author 课工场
 * @date 2024/4/23
 * @description   数据操作时 参数传递的形式
 *
 * 1.  没有参数
 * 2. 有一个参数
 *    简单类型
 *   对象类型
 * 3.多个零散参数
 *     如果在数据操作时以多个零散参数传递数据  不能直接在xml文件中通过形参名字进行取值
 *     默认情况下  可以通过 param1  param2 进行参数的获取
 *     如果希望通过形参的名字完成参数的获取 可以在形式参数前添加注解 @Param()
 * 4.  map
 *     在xml文件中获取参数时  获取参数的标识符是map集合的key
 *
 * 5.  list   批量删除  [1,2,3,4,5]   动态sql
 */
public interface UserMapper {

    List<User> selectUsers();

    User selectUser(Integer id);

    User selectUserByUserNameAndPassword(@Param("username") String username,@Param("password")  String password);

    User selectUserByMap(Map<String,Object> param);

}
